/**
 * @file platform_config.h
 * @brief 平台配置加载器
 * @details 从配置文件加载平台对接相关配置
 * 
 * @author zyb
 * @date 2025-11-04
 * @version 1.0
 */

#ifndef PLATFORM_CONFIG_H
#define PLATFORM_CONFIG_H

#include "mqtt_client.h"
#include "platform_client.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief 平台完整配置结构
 */
typedef struct {
    /* MQTT连接配置 */
    mqtt_config_t mqtt;                   /* MQTT连接配置 */
    
    /* 设备信息 */
    platform_device_info_t device;        /* 设备信息 */
    
    /* 平台配置 */
    bool auto_register;                   /* 自动注册设备 */
    bool auto_get_model;                  /* 自动获取物模型 */
    char model_type[32];                  /* 物模型类型 */
} platform_full_config_t;

/**
 * @brief 加载平台配置
 * @param config 配置结构指针
 * @param config_file 配置文件路径
 * @return 0表示成功，-1表示失败
 */
int platform_config_load(platform_full_config_t* config, const char* config_file);

/**
 * @brief 打印平台配置
 * @param config 配置结构指针
 */
void platform_config_print(const platform_full_config_t* config);

#ifdef __cplusplus
}
#endif

#endif /* PLATFORM_CONFIG_H */
